//==========================================================================
// Copyright (c) 2000-2008,  Elastos, Inc.  All Rights Reserved.
//==========================================================================

#ifndef __ELASTOS_CARTST_H__
#define __ELASTOS_CARTST_H__

#include "_CKCarTst.h"

class CKCarTst : public IKCarTst
{
public:
    CARAPI_(PInterface) Probe(
         /* [in]  */ REIID riid);

    CARAPI_(UInt32) AddRef(void);

    CARAPI_(UInt32) Release(void);

    CARAPI Aggregate(
         /* [in]  */ AggregateType type,
         /* [in] */ PInterface pObj);

    CARAPI GetDomain(
         /* [out] */ PInterface *ppObj);

    ECode CarTst0();

    ECode CarTst1(/*[in]*/ WString para);

    ECode CarTst2(/*[out]*/ WStringBuf * para);

    ECode CarTst3(/*[in]*/ const BufferOf<Int32> & para);

    ECode CarTst4(/*[out]*/ BufferOf<Int32> * para);

    ECode CarTst5(/*[in]*/ int para);

    ECode CarTst6(/*[out]*/ int * para);

    ECode CarTst7(/*[in]*/ IInterface * para);

    ECode CarTst8(/*[out]*/ IInterface ** para);

    ECode CarTst9(/*[in]*/ const BufferOf<Byte> & inStr);

private:
    Int32 m_Ref;
};

#endif
